package com.yr.ryjk.user.service;

import java.lang.reflect.InvocationTargetException;
import java.util.Map;

import com.yr.ryjk.user.entity.User;
import com.yr.ryjk.user.entity.UserRegisterModel;

public interface IUserService {
	/**
	 * 根据id获取用户信息
	 * @param id
	 * @return
	 */
	User getUserById(String id);
	
	/**
	 * 分页查询用户列表
	 * @param pageNo 当前页码
	 * @param pageSize 每页条数
	 * @param phone 
	 * @param name 
	 * @return
	 */
	Map<String, Object> getListOfPage(int pageNo, int pageSize, String name, String phone);

	/**
	 * 用户注册
	 * @param user
	 * @return
	 * @throws InvocationTargetException 
	 * @throws IllegalAccessException 
	 */
	Map<String, Object> addRegister(UserRegisterModel user) throws IllegalAccessException, InvocationTargetException;

	/**
	 * 用户登录
	 * @param phone 手机号
	 * @param password 密码
	 * @param jpushKey 极光推送pushkey,设备唯一识别号
	 * @return
	 * @throws InvocationTargetException 
	 * @throws IllegalAccessException 
	 */
	Map<String, Object> updatelogin(String phone, String password, String jpushKey) throws IllegalAccessException, InvocationTargetException;

	/**
	 * app用户重置密码
	 * @param phone 手机号
	 * @param newPassword 新密码
	 * @return 
	 */
	Map<String, Object> modifyResetPassword(String phone, String newPassword);

	/**
	 * app用户修改密码
	 * @param oldPassword
	 * @param newPassword
	 * @param token
	 * @return
	 */
	Map<String, Object> modifyPassword(String oldPassword, String newPassword,
			String token);

	/**
	 * 后台删除用户
	 * @param id
	 */
	void deleteById(String id);
	
	/**
	 * 获取app用户的统计信息
	 */
	Map<String, Object> getMesById(String id);
}
